package cn.com.gzheroli.service.bfw;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;


import cn.com.gzheroli.bfw.pojo.base.TSDepart;
import cn.com.gzheroli.bfw.pojo.base.TSUser;
import cn.com.gzheroli.core.common.model.json.AjaxJson;
import cn.com.gzheroli.core.common.model.json.ComboTree;

public interface DepartService {
	/**
	 * 获取组织结构下的所有用户信息
	 * @param departId
	 * @return
	 */
	public List<TSUser> getTsUserByDepartId(String departId);
	public List<Map<String,Object>> getDepartList(Map dataMap); 
	
	public List<Map<String,Object>>  getUserListByDepartId(Map dataMap);
	public List getAllSubDeptIds(String deptId,List deptIds);
	public TSDepart getDepart(String id);
	public  void updateDeptLevelNoCased(String pid,String levelNo);
	/**
	 * 
	* @Title: setPFunction 
	* @Description: 获取上级部门树 
	* @param @param user
	* @param @param parentid 父编号
	* @param @param selfId 自身编号
	* @param @return    设定文件 
	* @return List<ComboTree>    返回类型 
	* @throws
	 */
	public List<ComboTree> setPFunction(TSUser user,String parentid,String selfId);
	/**
	 * 
	* @Title: saveDepart 
	* @Description:保存部门信息
	* @param @param depart 部门pojo
	* @param @param pid 父id
	* @param @param logMap 日志信息map
	* @param @return    设定文件 
	* @return AjaxJson    返回类型 
	* @throws
	 */
	public AjaxJson saveDepart(TSDepart depart,String pid,Map logMap);
	/**
	 * 
	* @Title: delDepartCase 
	* @Description: 级联删除部门及修改用户部门 
	* @param @param id    设定文件 
	* @return void    返回类型 
	* @throws
	 */
	public void delDepartCase(String id);
}
